<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*对象数据类型的基本操作(增删改查)
        + 增(Create): 向对象内增加一个新成员
        + 删(Delete): 删除对象内某一个成员
        + 改(Update): 修改对象内某一个成员
        + 查(Read): 访问某一个对象成员的值
    */

        /*点语法
            + 增: 对象名.键名 = 值
            + 删: delete obj.键名
            + 改: 对象名.键名 = 值
              => 因为对象内键不允许重名
              => 再次设置的时候, 就是修改
            + 查: 对象名.键名
              => 如果对象内有这个键名, 那么就是该键对应的值
              => 如果对象内没有这个键名, 那么就是 undefined
        */

        /*
        数组关联语法

        增: 对象名['键名'] = 值
        删: delete 对象名['键名']
        改: 对象名['键名'] = 值
        查: 对象名['键名']
    */



    // 区别: 如果是完全符合变量命名规范规则 那么两者没区别
    // 键是数字和 特殊符号 必须采用['']
    

    // 涉及到变量 的时候必须采用 [变量] 不要加 ''

    
    var test = {
        name:'zhangsan',
        age:18,
        'height':'181cm'

    }
    var haha = 'name';  // 将键的名字放到一个变量中 
    // alert(test.num1); // 因为不存在num1这个键
    // 所以undefined 

    // alert(test['num1']) // 因为不存在num1这个键 undefined
    console.log(test[haha]); // 等同于
    // test['name']
    
    </script>
</body>

</html>